package org.example.flinketl.vo;

import java.math.BigDecimal;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Length;

import lombok.Data;
import lombok.ToString;

/**
 * @NotNull
 * 借据明细
 */
@Data
@ToString
public class DuebillMx   implements Vo{
  /** 证件号码 */
  String uid;
  /** 账号 */
  String acct_no;
  /** 借据流水号 */
  String receipt_no;
  /** 贷款合同号 */
  @NotNull
  @Length(min = 1)
  String contract_no;
  /** 科目号 */
  String subject_no;
  /** 核心客户号 */
  @Pattern(regexp = "\\d*")
  String cust_no;
  /** 信贷客户号 */
  String loan_cust_no;
  /** 客户名称 */
  @Length(min = 1)
  String cust_name;
  /** 业务品种 */
  String buss_type;
  /** 币种 */
  String curr_type;

  /** 金额 */
  @NotNull
  BigDecimal buss_amt;
  /** 发放日期 */
  String putout_date;
  /** 约定到期日 */
  String matu_date;
  /** 执行到期日 */
  String actu_matu_date;
  /** 利率 */
  BigDecimal buss_rate;
  /** 执行利率 */
  BigDecimal actu_buss_rate;
  /** 计息方式 */
  String intr_type;
  /** 计息周期 */
  String intr_cyc;
  /** 还款期次 */
  Integer pay_times;
  /** 还款周期 */
  String pay_cyc;
  /** 展期次数 */
  Integer extend_times;
  /** 余额 */
  BigDecimal bal;
  /** 正常余额 */
  BigDecimal norm_bal;
  /** 逾期金额 */
  BigDecimal dlay_amt;
  /** 呆滞金额 */
  BigDecimal dull_amt;
  /** 呆帐金额 */
  BigDecimal bad_debt_amt;
  /** 表内欠息金额 */
  BigDecimal owed_int_in;
  /** 表外欠息金额 */
  BigDecimal owed_int_out;
  /** 本金罚息 */
  BigDecimal fine_pr_int;
  /** 利息罚息 */
  BigDecimal fine_intr_int;
  /** 逾期天数 */
  Integer dlay_days;
  /** 存款帐号 */
  String pay_acct;
  /** 放款账号 */
  @Pattern(regexp = "\\d*")
  String putout_acct;
  /** 还款帐号 */
  @Pattern(regexp = "\\d*")
  String pay_back_acct;
  /** 欠息天数 */
  Integer due_intr_days;
  /** 经办机构 */
  String operate_org;
  /** 经办人 */
  String operator;
  /** 登记机构 */
  String reg_org;
  /** 登记人 */
  String register;
  /** 发生日期 */
  String occur_date;
  /** 贷款用途 */
  String loan_use;
  /** 还款方式 */
  String pay_type;
  /** 还款频率 */
  String pay_freq;
  /** 主要担保方式 */
  String vouch_type;
  /** 管户人工号 */
  String mgr_no;
  /** 管户机构号 */
  String mge_org;
  /** 贷款渠道 */
  String loan_channel;
  /** 新十级分类编码 */
  String ten_class;
  /** 源系统日期 */
  String src_dt;
  /** 平台日期 */
  String etl_dt;

  public static String getTableName() {
    return "dm_v_tr_duebill_mx";
  }

  @Override
  public String getContentType() {
    return "duebill";
  }
}
